#include<bits/stdc++.h>
using namespace std;
#define int long long

int fun(string s, string t) {
	vector<vector<int>> f(s.size() + 1, vector<int>(t.size() + 1));
	for (int i = 1; i <= s.size(); i++) {
		for (int j = 1; j <= t.size(); j++) {
			if (s[i - 1] == t[j - 1]) {
				f[i][j] = f[i - 1][j - 1] + 1;
			} else {
				f[i][j] = max(f[i - 1][j], f[i][j - 1]);
			}
		}
	}
	return f[s.size()][t.size()];
}

signed main() {
	string s, t;
	cin >> s >> t;
	cout << fun(s, t);
	return 0;
}
